package com.hqyj.exception;

import lombok.AllArgsConstructor;
import lombok.Data;

/**
 * @Description 统一响应类
 * @Autor 伍军
 * @Date 2022/10/25 9:38
 * @Version 1.0
 **/
@Data//相当于@Setter + Getter + @ToString + @EqualsAndHashCode
@AllArgsConstructor//自动全参数构造函数注解
public class R {
    //提示信息
    private String msg;
    //状态码
    private Integer code;
    //数据
    private Object data;

    /**
     * 成功返回带提示信息和不带数据的响应对象
     * @return
     */
    public static R ok(){

        return new R(CodeEnum.SUCCESS.MSG,CodeEnum.SUCCESS.CODE,"success");
    }

    /**
     * 成功返回自定义提示信息和自定义数据的响应对象
     * @return
     */
    public static R ok(String msg,Object data){
        return new R(msg,CodeEnum.SUCCESS.CODE,data);
    }


    /**
     * 错误返回自定义提示信息和自定义数据的响应对象
     * @return
     */
    public static R error(){
        return new R(CodeEnum.ERROR.MSG,CodeEnum.ERROR.CODE,"error");
    }
    /**
     * 错误返回自定义提示信息和数据的响应对象
     * @return
     */
    public static R error(String msg){
        return new R(msg,CodeEnum.ERROR.CODE,"error");
    }
    /**
     * 错误返回自定义提示信息和自定义数据的响应对象
     * @return
     */
    public static R error(String msg,int code,Object data){
        return new R(msg,code,data);
    }




}
